let count = 0
/**
 *
 * 搜索插入位置： https://leetcode-cn.com/problems/search-insert-position/
 *第一种思路：两个条件分别匹配：第一种条件，直接找相同的，
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function (nums, target) {
  let l = 0
  let r = nums.length - 1
  let m
  while (l <= r) {
    count++
    m = Math.floor(l + (r - l) / 2)
    if (nums[m] === target) {
      return m
    } else if (target < nums[m]) {
      r = m - 1
    } else {
      l = m + 1
    }
  }

  // 这一步可优化
  if (target > nums[m]) {
    m += 1
  }
  return m
}

console.log(searchInsert([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 6))
console.log('count', count)
//================v1要点总结===============
/**
 * 1. 先找是否存在，不存在则返回插入位置
 * 2. 最后l和r相同时，如果target < nums[m], 则原地替换，不减1
 * 3. 凝练最终的需求：找到第一个大于等于target的数的标
 */
